<?php

class cAttributionAppli extends BaseController{
	
	public function index(){
		
		$this->loadView("vMenu");
		$this->loadView("vAttributionAppli");
		$this->contain();
		
	
	}
	
	public function contain(){
		
		$allApps = DAO::getAll("Utilisateur");
		foreach ($allApps as $app){
			//Pour l'id d'un utilisateur
			$aGroupe=DAO::getOne("Utilisateur",$app->getId());
			//On va chercher ses applications
			DAO::getManyToMany($aGroupe,"application");
			//On affect les applications trouvée
			$allApps = $aGroupe->getApplication();
				
		
			//	Pour chaque application
			foreach ($allApps as $app){
		
				//On affiche la persone et son appli
				echo JsUtils::doSomethingOn("#message","append","'<tr><td>".$aGroupe->getLogin()."</td><td>".$app->getLibelle()."</td><td><img class=\'imgDelApp\' value=\'groupes\' name=".$aGroupe->getId()."+".$app->getId()." src=\'images/delete3.png\' alt=\'delete\'</td>'");
		
			}
		}
		
		echo JsUtils::postFormAndBindTo("#deconnexion", "click", "cAccueil/deconnexion", "menu","#menu");
		echo JsUtils::postAndBindTo("#groupe", "change", "cAttributionAppli/showGroupeUser", "{groupe:$(groupe).val()}", "#users");
		echo JsUtils::postAndBindTo("#btAddApp", "click", "cAttributionAppli/assocApps", "{userGroupe:$(userGroupe).val(),application:$(application).val()}", "#message");
		echo JsUtils::postAndBindTo(".imgDelApp", "click", "cAttributionAppli/delApps", "{utilisateur:$(this).attr('name')}", "#message");
		
	}
	
	
	public function showGroupeUser(){
		
		Gui::showSelectUser($_POST['groupe']);
		
	}
	
	
	public function assocApps(){
		if(!empty($_POST['userGroupe']) && !empty($_POST['application'])){
		
			$userGroupes = $_POST['userGroupe'];
			$applications = $_POST['application'];
			$date = date("Y-m-d");
			
			$allUsers = DAO::getAll("Utilisateur");
			$affecter = DAO::getAll("Affectation");
			
			foreach ($affecter as $aAffecter){
				foreach ($applications as $application){
					foreach ($userGroupes as $userGroupe){
						
						if($aAffecter->getIdApplication() == $application && $aAffecter->getIdUtilisateur() == $userGroupe){
							$existe = true;
							echo JsUtils::execute('alert("Déjà enregistré.")');
							echo JsUtils::execute('window.location = "cAttributionAppli"');
						
						}
					}
				}
			}
		
		// Si existe pas la variable
			if(!isset($existe)){
				foreach($applications as $application){
					foreach($userGroupes as $userGroupe){
						
						$affecter = new Affectation($application,$userGroupe,$date);
						$ret = DAO::insert($affecter);
					}
				}	
						
				//Puis on charge le tableau avec les modifs de l'insertion
				Gui::trAttrApp();
					$this->contain();
						
			}
			echo JsUtils::postAndBindTo(".imgDelApp", "click", "cAttributionAppli/delApps", "{utilisateur:$(this).attr('name')}", "#message");
		}
		else 
		{ 
			echo JsUtils::execute('alert("Selection manquante.")');
			$this->contain();
		}
	}

	public function delApps(){
		
		$allUtilisateur = DAO::getAll("Utilisateur");
		$allApplication = DAO::getAll("Application");
		
		$utilisateur = $_POST['utilisateur'];
		$tab = explode("+", $utilisateur);
					
		foreach ($allUtilisateur as $user){
				//si id d'un utilisateur est égal au tableau 
			if ($user->getId() == $tab[0]) {
	
				foreach ($allApplication as $apps){
					//si id d'une application est égal au tableau
					if ($apps->getId() == $tab[1]) {
				
						$affectation = new Affectation($setIdApplication = $apps->getId(),$setIdUtilisateur = $user->getId());
					
						DAO::delete($affectation);
					}
				}
						
			}

		}
		
			$allApps = DAO::getAll("Utilisateur");
			Gui::trAttrApp();
			foreach ($allApps as $app){
				//pour chaque application 
				$aGroupe=DAO::getOne("Utilisateur",$app->getId());
				//pour chaque utilissateur d'une app
				DAO::getManyToMany($aGroupe,"application");
				//on stocke toutes les apps
				$allApps = $aGroupe->getApplication();
				//On les affiche
				
				
				foreach ($allApps as $app){
							
					echo JsUtils::doSomethingOn("#message","append","'<tr><td>".$aGroupe->getLogin()."</td><td>".$app->getLibelle()."</td><td><img class=\'imgDelApp\' value=\'groupes\' name=".$aGroupe->getId()."+".$app->getId()." src=\'images/delete3.png\' alt=\'delete\'</td>'");
								
				}
			}
			echo JsUtils::postAndBindTo(".imgDelApp", "click", "cAttributionAppli/delApps", "{utilisateur:$(this).attr('name')}", "#message");
	}	

}

